iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 5
1
  • Guide :
    • The Linux Kernel
    • Hardware Abstraction Layer (HAL)
    • Android Runtime (ART)
    • Java API Framework
    • System App

Android Runtime (ART)

在 Android 4.4 版本前是使用 dalvik 虛擬機,執行的是 DEX 位元組碼,

而 dalvik 採用的 JIT (Just-in-Time) 直譯器,

會在程式執行的時候將 DEX 轉成本地機器碼,

而且每次執行都要轉換一次,效率聽起來就很慢;

Android 4.4 版本後引用 ART 虛擬機,

而 ART 採用的是 AOT (Ahead-of-Time),

在 App 安裝時就會將 DEX 載入轉換成本地機器碼。

Android 9.0 版本這次又強調轉換效率更高,

且可以使得 App 啟動更快速、消耗更少的空間存取,

更適應在許多硬體資源吃緊的環境下運作。

Java API Framework

從 framework APIs 可以查詢到許多內建的功能,

我想可以特別來看一下 API Level 28 新增的部份,

舉例第一篇提到的 WIFI RTT 功能便有 android.net.wifi.rtt。

這部份就等日後有談到 WIFI RTT,

再搭配 Service、HAL、Kernel 運作流程一起詳細介紹。

在 Android 8.0 後還新增了 Autofill framework 的功能,

可以自動填入像是原先設定要紀錄的欄位,像是帳號、密碼、信箱等等,

用的就是 android.service.autofill。

還有 Android 9.0 有新增適應瀏海屏的 WindowInsets 和 DispayCutout 功能,

在 android.view 裡面的 Classes 可以找到 android.view.DisplayCutout,

為的也是讓 App 可以正常顯示出狀態欄。

System App

這部份一樣會圍繞在 Android 9.0 Pie 新增的功能,

要如何適配像是 WIFI RTT、瀏海屏顯示和 Autofill 等等的應用上。

但是篇幅相對比較少一些,

畢竟重點會多放在 Framework、HAL、Kernel 這三個部份。

所以假如你是想看看怎麼寫 Android 9.0 APP 的,

這系列可以關掉了(笑),但多學總是好的 :)


Reference:

Package Index | Android Developers


上一篇
[Day-04] Android 架構解析 (1) Kernel & HAL
下一篇
[Day-06] Android HIDL (1) Treble
系列文
Android Pie 底層開發學習心得 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言